'use strict';

//云函数：查询当前用户所有支出和收入
const db = uniCloud.database();
const collection = db.collection('money');

exports.main = async (event, context) => {
	let res = null;
	const $ = db.command.aggregate

	//event为客户端上传的参数
	if (!event.userId) {
		return {
			code: 0,
			msg: '请检查传参！'
		};
	}


	let inCount = 0;
	let outCount = 0;
	// 这样可以查询整个表，可能只是限制返回拿到的数据最多500条
	res = await collection.aggregate()
		.match({
			userId: event.userId,
		})
		.group({
			_id: '$mark',
			count: $.sum('$money')
		})
		.end();

	for (let i = 0; i < res.data.length; i++) {
		if (res.data[i]._id === 'income') {
			inCount = res.data[i].count;
		} else if (res.data[i]._id === 'expenditure') {
			outCount = res.data[i].count;
		}
	}

	return {
		code: 1,
		msg: '查询成功',
		data: {
			inCount: inCount,
			outCount: outCount
		}
	};


	// let pageNumber = 1
	// let pageSize = 500
	// let inCount = 0;
	// let outCount = 0;

	// while (1) {
	// 	res = await collection.aggregate()
	// 		.skip((pageNumber - 1) * pageSize)
	// 		.limit(500)
	// 		.match({
	// 			userId: event.userId,
	// 		})
	// 		.group({
	// 			_id: '$mark',
	// 			count: $.sum('$money')
	// 		})
	// 		.end();

	// 	let inCountTmp = inCount
	// 	let outCountTmp = outCount

	// 	for (let i = 0; i < res.data.length; i++) {
	// 		if (res.data[i]._id === 'income') {
	// 			inCount += res.data[i].count;
	// 		} else if (res.data[i]._id === 'expenditure') {
	// 			outCount += res.data[i].count;
	// 		}
	// 	}

	// 	if (inCountTmp === inCount && outCountTmp == outCount) {
	// 		return {
	// 			code: 1,
	// 			msg: '查询成功',
	// 			data: {
	// 				inCount: inCount,
	// 				outCount: outCount
	// 			}
	// 		};
	// 	}

	// 	pageNumber++;
	// }
};
